package com.lagou.xml03;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.util.List;

/**
 * @Author wsl
 * @Date 2021/8/24 20:10
 * @Project_Name mysql
 */
public class TestDOM4j {

    //获取XML文件中的 所有的元素名称(标签)
    @Test
    public void test1() throws DocumentException {
        //1.获取XML解析对象
        SAXReader sr = new SAXReader();

        //2.解析对象 获取 文档对象 document
        Document document =
     sr.read("E:\\IdeaStudyProjects\\mysql\\xml_module2_3\\src\\com\\lagou\\xml03\\user.xml");

        //3.获取根元素
        Element rootElement = document.getRootElement();

        //3.1 获取根元素名称
        System.out.println(rootElement.getName());

        //3.2 获取根元素下的标签
        List<Element> elements = rootElement.elements();
        for (Element element: elements){
                 System.out.println("根标签下的子节点："+element.getName());

            List<Element> eList = element.elements();
            for (Element e: eList){
                System.out.println("user标签下的子节点："+ e.getName());
            }
            break;
        }
    }

    /**
     * 获取具体的节点内容 获取张百万的所有信息
     */
    @Test
    public void test2() throws DocumentException {
        //1.创建XML文档解析对象
        SAXReader sr = new SAXReader();

        //2.读取XML获取到document对象
        Document document = sr.read("src/com/lagou/xml03/user.xml");

        //3.获取根节点
        Element rootElement = document.getRootElement();

        //4.得到当前节点的 所有子节点
        List<Element> elements = rootElement.elements();

        //5.获取第一个子节点
        Element user = elements.get(0);

        //6.获取所有信息
        String id = user.attributeValue("id");
        String name = user.elementText("name");
        String age = user.elementText("age");
        //使用getText获取当前元素的文本内容
        String hobby = user.element("hobby").getText();

        //打印
        System.out.println(id+ " "+name+ " "+age+ " "+hobby);
    }
}
